Herein, related art is described for expository purposes. Related art labeled “prior art”, if any, is admitted prior art; related art not labeled “prior art” is not admitted prior art.
Running applications in virtual machines executing on a multi-processor system can be cost-effective as computing resources can be dynamically allocated to workloads according to demand. Each virtual machine can have one or more process threads that are assigned to processors for execution. Since threads from the same virtual machine are likely to be working on a common task, they are more likely to interact than are threads from different virtual machines. Therefore, the different threads from a given virtual machine can be assigned to different processors so that they can execute concurrently and do not have to wait for each other to be activated to exchange data. Where there are more total threads than processors, threads can time-share a processor.